package com.automannn.atm_back.modules.codeGenerator.core.util;


import com.automannn.atm_back.modules.codeGenerator.core.pojo.group.ColumnConfigGroup;
import com.automannn.atm_back.modules.codeGenerator.core.pojo.group.GlobalConfigGroup;
import com.automannn.atm_back.modules.codeGenerator.core.pojo.group.TemplateGroup;
import com.automannn.atm_back.modules.codeGenerator.core.pojo.group.TypeMapperGroup;

/**
 * 当前分组配置获取工具
 *
 */
//todo: 这个抽成service
public final class CurrGroupUtils {
    /**
     * 禁用构造方法
     */
    private CurrGroupUtils() {
        throw new UnsupportedOperationException();
    }

    /**
     * 获取当前模板组对象
     *
     * @return 模板组对象
     */
    public static TemplateGroup getCurrTemplateGroup() {

        //todo:从数据库加载当前模板组对象;
        //也许要抽成一个service；
        return null;
    }

    /**
     * 覆盖或添加模板组
     *
     * @param groupName     组名
     * @param templateGroup 模板组对象
     */
    public static void addCurrTemplateGroup(String groupName, TemplateGroup templateGroup) {
        //todo:新增模板组，保存至数据库中
    }




    /**
     * 获取当前全局配置组对象
     *
     * @return 全局配置组对象
     */
    public static GlobalConfigGroup getCurrGlobalConfigGroup() {
        //todo: 从数据库获取
        //该类抽成一个service
        return null;
    }

    /**
     * 覆盖或添加全局配置组
     *
     * @param groupName         组名
     * @param globalConfigGroup 全局配置组对象
     */
    public static void addGlobalConfigGroup(String groupName, GlobalConfigGroup globalConfigGroup) {
        //todo: 添加全局配置组
    }

    /**
     * 获取当前类型映射组对象
     *
     * @return 类型映射组对象
     */
    public static TypeMapperGroup getCurrTypeMapperGroup() {
        //todo:获取当前模板对象组对象
        return null;
    }

    /**
     * 覆盖或添加类型映射组
     *
     * @param groupName         组名
     * @param typeMapperGroup 类型映射组对象
     */
    public static void addTypeMapperGroup(String groupName, TypeMapperGroup typeMapperGroup) {
        //todo: 添加模板对象组
    }

    /**
     * 获取当前列配置组对象
     *
     * @return 列配置组对象
     */
    public static ColumnConfigGroup getCurrColumnConfigGroup() {
        // todo:获取当前列配置组对象
        return null;
    }

    /**
     * 覆盖或添加列配置组
     *
     * @param groupName         组名
     * @param columnConfigGroup 列配置组对象
     */
    public static void addColumnConfigGroup(String groupName, ColumnConfigGroup columnConfigGroup) {
        //todo: 添加列配置组对象
    }

}
